package pl.piomin.service.blockchain.model;

/**
 * 区块链交易类，用于表示一笔区块链上的交易信息
 * 该类包含了交易的主要属性，如交易发起者、接收者、交易金额和交易状态等
 */
public class BlockchainTransaction {

    // 交易的唯一标识符
    private String id;

    // 交易发起者的ID
    private int fromId;

    // 交易接收者的ID
    private int toId;

    // 交易的金额
    private long value;

    // 交易是否已被接受和确认
    private boolean accepted;


    public BlockchainTransaction() {

    }

    /**
     * 创建一个区块链交易记录
     * 该构造方法用于初始化一个区块链交易对象，记录从一个身份证号到另一个身份证号的交易详情
     *
     * @param fromId 身份证号，表示交易的发起者
     * @param toId 身份证号，表示交易的接收者
     * @param value 交易金额，表示交易的数值大小
     */
    public BlockchainTransaction(int fromId, int toId, long value) {
        this.fromId = fromId;
        this.toId = toId;
        this.value = value;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public int getFromId() {
        return fromId;
    }

    public void setFromId(int fromId) {
        this.fromId = fromId;
    }

    public int getToId() {
        return toId;
    }

    public void setToId(int toId) {
        this.toId = toId;
    }

    public long getValue() {
        return value;
    }

    public void setValue(long value) {
        this.value = value;
    }

    public boolean isAccepted() {
        return accepted;
    }

    public void setAccepted(boolean accepted) {
        this.accepted = accepted;
    }

    @Override
    public String toString() {
        return "BlockchainTransaction{" +
                "id='" + id + '\'' +
                ", fromId=" + fromId +
                ", toId=" + toId +
                ", value=" + value +
                ", accepted=" + accepted +
                '}';
    }
}
